package com.jichangxiu.common.entity.bo;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
 * PageData:
 *
 * @author Jcx
 * @create 2023-04-03 22:18
 */
@Data
@Builder
public class PageData<T> {

    private Integer total;

    private List<T> records;

    public static <T> PageData<T> build(Page<T> page) {
        return (PageData<T>) PageData.builder().total((int) page.getTotal()).records((List<Object>) page.getRecords()).build();
    }

    public static <T> PageData<T> build(Integer total, List<T> data) {
        return (PageData<T>) PageData.builder().total(total).records((List<Object>) data).build();
    }

    public static <T> PageData<T> build(Page<T> page, List<T> data) {
        return (PageData<T>) PageData.builder().total((int) page.getTotal()).records((List<Object>) data).build();
    }

}
